import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import WindiCSS from 'vite-plugin-windicss'
import UnoCSS from "unocss/vite";
import { presetUno, presetAttributify, presetIcons } from 'unocss'
import { resolve } from 'path';
import path from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'

const root = process.cwd()
function pathResolve(dir: string) {
  return resolve(root, '.', dir)
}
export default defineConfig(({ mode }) => {
  // 加载环境变量
  const env = loadEnv(mode, process.cwd());

  return {
    plugins: [
      vue(),
      WindiCSS(),
      AutoImport({
        imports: ['vue', 'vue-router'],
        dts: 'src/auto-imports.d.ts', // 生成自动导入的类型声明文件
        eslintrc: {
          enabled: true // 生成eslint配置
        }
      }),
      Components({
        dts: 'src/components.d.ts' // 生成组件类型声明文件
      }),
      UnoCSS({
        presets: [
          presetUno(), // 默认预设
          presetAttributify(), // 属性化模式支持
          presetIcons() // 图标支持
        ],
        // 可选规则
        rules: [
          ['m-1', { margin: '0.25rem' }]
        ]
      })
    ],
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './src'),
        // 添加其他需要的别名
      },
      extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.less', '.css','.vue'],
    },
    server: {
      port: 3000, // 自定义端口
      proxy: {
        '/api': {
          target: 'http://localhost:3000', // 使用环境变量
          changeOrigin: true,
          rewrite: (path) => path.replace(/^\/api/, ''),
        },
      },
    },
  };
});


